TP1 - 20%
Date de remise : 19 Octobre 2025 , 23h59
Contexte du TP
- Environnement: Cluster Proxmox avec 3 noeuds
- Scénario: Vous êtes administrateur système d'une entreprise qui souhaite mettre en place une infrastructure virtualisée robuste avec haute disponibilité
Afin que tout le monde puisse faire son propre TP, vous devez le faire sur LabInfo. Prenez note qu'il est possible de cloner des serveurs Proxmox dans LabInfo, mais il faut suivre une procédure à la lettre pour que cela fonctionne. Je vous donne cette procédure un peu plus bas.
Étapes de réalisation 🔢
Créer vos serveurs Proxmox
Pour compléter le TP, vous aurez besoin respectivement de 3 noeuds. Chacun de ces noeuds doit posséder les caractéristiques suivantes:
- Processeur de 4 coeurs
- 16 Go de RAM
- 1 disque dur de 40Go (système)
- 2 disques durs de 250Go (stockage ZFS)
- 1 carte réseau branché sur
Accès Internet N
Installez Proxmox convenablement une première fois. Prenez soin de donner un nom d'hôte convenable! Ex: Node1.
Cloner un serveur Proxmox
Pour cloner un serveur Proxmox, suivez les étapes suivantes:
-
Assurez-vous que le serveur source soit fonctionnel et neuf! (pas de VM, de conteneur ou de stockage de configuré).
-
Éteignez le serveur source, puis procédez au clonage dans LabInfo.
-
Démarrez la machine nouvèlement cloné.
-
Lorsque le système aura démarré, forcez l'obtention d'une nouvelle IP via dhcp.
dhclient #Relance le processus DHCP
-
Vous vous retrouverez temporairement avec deux adresses IP. Soit l'originale provenant du Proxmox originalement cloné ainsi qu'une nouvèlement obtenu. Il nous faut donc relâcher les deux adresses, puis renouveler de nouveau.
dhclient -r #Relâchement des adresses
dhclient #Renouvèlement
astucePour une raison que j'ignore, Proxmox n'accepte pas de relâcher l'adresse qui provient de la machine source avant d'obtenir une nouvelle adresse IP.
Notez bien l'adresse que vous avez obtenu!
-
Éditez le fichier
/etc/network/interfaces
et modifiez l'IP associée au bridge/etc/network/interfacesauto lo
iface lo inet loopback
iface ens192 inet manual
auto vmbr0
iface vmbr0 inet static
address 172.30.8.214/16 # Cette adresse!!
gateway 172.30.0.1 # La passerelle au besoin
bridge-ports ens192
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/* -
Éditez le fichier
/etc/hosts
et modifiez l'ip et le nom d'hôte/etc/hosts127.0.0.1 localhost.localdomain localhost
172.30.8.214 node02.gabriel.local node02 # Modifiez cette ligne
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts -
Supprimez le contenu du dossier
/etc/pve/nodes/template
rm -rf /etc/pve/nodes/template
-
Supprimez le fichier
/etc/machine-id
rm -f /etc/machine-id
-
Supprimez le fichier
/var/lib/dbus/machine-id
rm -f /var/lib/dbus/machine-id
-
Générez un nouvel identifiant unique pour le noeud
dbus-uuidgen --ensure=/etc/machine-id
-
Définissez le nouveau nom de la machine
hostnamectl set-hostname Node02
-
Voilà! Redémarrez le nouveau noeud et il sera prêt à être utilisé.
Étape 1 : ZFS (10 points)
Sur chacun des noeuds:
-
Créer un pool ZFS (2 points)
-
Créer les datasets suivants: (8 points)
Nom Type Contenu vm-prod
ZFS Disques durs des VMs de la production vm-dev
ZFS Disques durs des VMs des développeurs backups
Directory Fichiers de sauvegarde templates
ZFS Disques durs des VMs modèles(templates)
Livrables pour cette étape:
- Sortie de
zpool list
montrant le pool ZFS créé dans chaque noeud. - Sortie de
zfs list
montrant les datasets créés dans chaque noeud. - Captures d'écran de la configuration des storages dans Proxmox.
Étape 2 : Utilisateurs et permissions (15 points)
Créer les groupes suivants: (3 points)
admins-infra
: Administrateurs completsops-backup
: Équipe responsable des sauvegardesdevs-junior
: Développeurs avec accès limité
Créer les utilisateurs suivants dans le realm PVE: (4 points)
admin1@pve
(membre deadmins-infra
)backup-ops@pve
(membre deops-backup
)dev1@pve
(membre dedevs-junior
)
Configurer les permissions suivantes: (8 points)
- Le groupe
admins-infra
doit avoir tous les droits sur/
- Le groupe
ops-backup
doit pouvoir:- Voir toutes les VMs
- Gérer les sauvegardes (création, restauration, suppression)
- Accéder au stockage de backup uniquement
- Le groupe
devs-junior
doit pouvoir, sur le pooldev-pool
uniquement :- Démarrer/arrêter les VMs
- Accéder à la console (l'écran des vms)
- NE PAS pouvoir supprimer ou créer des VMs
Livrables pour cette étape:
- Captures d'écran de la configuration des permissions.
- Captures d'écran des différents tests démontrant un accès ou une interdiction.
Étape 3: Gestion des VMs et des Pools (20 points)
Créer les pools de ressources suivants (3 points):
prod-pool
: VMs de productiondev-pool
: VMs de développementbackup-pool
: VMs de test de restauration
Créer et configurer les VMs suivantes (12 points):
VM | Pool | OS | vCPU | RAM | Disque | Stockage ZFS | Particularités |
---|---|---|---|---|---|---|---|
web-prod-01 | prod-pool | Ubuntu/Debian | 2 | 2GB | 20GB | vm-prod | - Doit être HA - 2 interfaces réseaux (2 bridges distincts) - Démarrage automatique |
db-prod-01 | prod-pool | Ubuntu/Debian | 4 | 4GB | 40GB | vm-prod | - Doit être HA - Démarrage automatique avec délai de 30 secondes |
dev-test-01 | dev-pool | Alpine/Debian | 1 | 1GB | 10GB | vm-dev | - Non-HA |
Créer également un template à partir d'une VM de base (au choix) nommé template-base-debian
sur le dataset templates
Livrables pour cette étape:
- Captures d'écran de chaque VM avec sa configuration
- Sortie de la configuration d'une VM (
qm config <vmid>
) - Liste des pools avec leurs VMs assignées
- Vérification du dataset ZFS utilisé pour chaque VM (
zfs list -t all | grep <vmid>
)
Étape 4: Sauvegardes et rétention (25 points)
Créer les tâches de sauvegarde suivantes (15 points):
Tâche 1
- Nom:
backup-prod-daily
- Cible: Toutes les VMs du pool
prod-pool
- Destination: Stockage
backups
(dataset ZFS) - Mode: Snapshot
- Compression: ZSTD
- Planification: Tous les jours à 2h00
- Rétention:
- Conserver les 7 derniers backups quotidiens
- Conserver les 4 derniers backups hebdomadaires
- Conserver les 3 derniers backups mensuels
Tâche 2
- Nom:
backup-dev-weekly
- Cible: Toutes les VMs du pool
dev-pool
- Destination: Stockage
backups
(dataset ZFS) - Mode: Stop
- Compression: LZO (rapide)
- Planification: Tous les dimanches à 4h00
- Rétention: Conserver uniquement les deux derniers backups
Tests de sauvegarde et de restauration (10 points):
- Lancer manuellement un backup de
web-prod-01
- Restaurer ce backup en tant que nouvelle VM nommée
web-prod-01-restore
dans le poolbackup-pool
- Vérifiez l'intégrité de la VM restaurée (démarrage,configuration réseau)
- Observer l'impact de la compression ZFS sur la taille des backups
Livrables pour cette étape:
- Captures d'écran de la configuration de chaque job de backup
- Liste des backups disponibles pour chaque VM
- Documentation du processus de restauration avec captures d'écran
- Analyse de l'espace disque utilisé par les backups (avant/après compression)
Étape 5: Réplication et Migration (10 points)
Migration de VMs (5 points):
- Effectuer une migration à chaud (online) de
web-prod-01
vers un autre noeud. - Effectuer une migration à froid (offline) de
dev-test-01
vers un autre noeud. - Documenter les différences entre les deux méthodes et les conditions requises.
Réplication ZFS (5 points):
- Configurer une tâche de réplication ZFS pour
db-prod-01
vers un autre nœud - Planification : Toutes les 15 minutes
- Lancer manuellement une réplication et vérifier qu'elle fonctionne
- Vérifier la présence du snapshot de réplication sur le nœud cible avec zfs list -t snapshot
- Expliquer la différence entre la réplication et la sauvegarde
Livrables pour cette étape:
- Sortie de la commande
pvecm status
- Captures d'écran des migrations en cours
- Configuration de la réplication avec logs de succès
- Sortie de
zfs list -t snapshot
sur les noeuds source et cible - Documentation comparative: migration vs réplication vs backup
Étape 6: Haute-Disponibilité (20 points)
Configuration HA (8 points):
- Activer la haute disponibilité pour
web-prod-01
etdb-prod-01
- Configurer les groupes HA avec les priorités suivantes:
web-prod-01
: priorité 100db-prod-01
: priorité 200 (plus critique)
- Définir la politique de redémarrage: max 3 tentatives
- Vérifier que la réplication ZFS est active pour les VMs HA
Test de basculement (8 points):
- Test1: Arrêter brutalement une VM HA et observez son comportement
- Test2: Simuler une panne de noeud
- Documenter le temps de détection et de redémarrage
- Vérifiez les logs HA (
/var/log/pve-ha-lrm.log
et/var/log/pve-ha-crm.log
) - Observez comment HA utilise la réplication ZFS pour redémarrer la ou les VMs
Analyse et optimisation (4 points):
- Expliquer les prérequis pour que HA fonctionne (quorum, réplication ZFS, etc.)
- Documenter les limitations observées
- Proposer un scénario où HA ne fonctionnerait PAS et expliquer pourquoi
- Analyser l'importance de la réplication ZFS dans le mécanisme de HA
Livrables pour cette étape:
- Configuration HA avec captures d'écran
- Logs des tests de basculement avec timestamps
- Séquence de captures montrant le basculement automatique
- Rapport d'analyse des prérequis et limitations
Format du livrable final 📖
Un document Word structuré contenant:
- Page de présentation (nom, date, cours, etc.)
- Table des matières
- Pour chaque partie:
- Captures d'écran annotées
- Commandes utilisées (notamment les commandes ZFS)
- Explications
- Résultats des tests au besoin
- Conclusion personnelle sur vos apprentissages et les défis rencontrés.
Grille d'évaluation ✅
Critère | Points | Détails |
---|---|---|
Partie 1 | ZFS | |
Création du pool | 2 | -Commande zpool list (1 pt)-Documentation claire (captures d'écran et explications) (1 pt) |
Création des datasets | 8 | -Structure complète avec les 4 datasets requis (4 pts) -Nomenclature cohérente et appropriée (2 pts) -Commandes ZFS utilisées justes (2 pts) |
Partie 2 | Utilisateurs et permissions | |
Création des groupes | 3 | -3 groupes créés avec les bons noms (3 pts) |
Création des utilisateurs | 4 | -3 utilisateurs dans le realm PVE (3 pts) -Assignation aux bons groupes (1 pt) |
Permissions admins-infra | 2 | -Groupe a tous les droits sur / (2 pts) |
Permissions ops-backup | 3 | -Droits de lecture sur toutes les VMs (1 pt) -Gestion complète des backups (1 pt) -Restriction correcte au storage backup uniquement (1 pt) |
Permissions devs-junior | 2 | -Droits limités au pool dev-pool uniquement (1 pt) -Restrictions correctes: démarrage/console sans création/suppression (1 pt) |
Tests et validation | 1 | -Connexion testée et validée avec chaque utilisateur (1 pt) |
Partie 3 | VMs et Pools | |
Création des pools | 3 | -3 pools créés (2 pts) -Organisation logique et pertinente (1 pt) |
VM web-prod-01 | 3 | -Configuration complète selon les spécifications (2 pts) -Sur le bon dataset ZFS (1 pt) |
VM db-prod-01 | 3 | -Configuration complète selon les spécifications (2 pts) -Sur le bon dataset ZFS (1 pt) |
VM dev-test-01 | 3 | -Configuration complète selon les spécifications (2 pts) -Sur le bon dataset ZFS (1 pt) |
Double interface réseau | 2 | -Web-prod-01 avec 2 interfaces réseau configurées (2 pts) |
Démarrage automatique | 2 | -Les VMs de prod ont un démarrage automatique avec un délai de 30 secondes entre les deux (2 pts) |
Création template | 1 | -template-base-debian créé sur dataset templates (1 pt) |
Documentation | 3 | -Captures d'écran claires de chaque VM (1 pt) -Sortie de qm config fourni (1 pt) -Vérification datasets ZFS (zfs list) (1 pt) |
Partie 4 | Sauvegardes et rétention | |
Configuration stockage backup | 2 | -Dataset backup configuré (1 pt) -Espace disponible documenté (1 pt) |
Tâche backup-prod-daily | 3 | -Configuration complète (pool,mode snapshot,ZSTD) (1 pt) -Rétention correcte (7/4/3) (1 pt) -Planif quotidienne à 2h00 (1 pt) |
Tâche backup-dev-weekly | 2 | -Configuration complète (pool,mode stop,LZO) (1 pt) -Rétention et planif hebdomadaire correctes (1 pt) |
Test backup manuel | 2 | -Backup manuel de web-prod-01 réussi (1 pt) -Documentation temps et taille du backup (1 pt) |
Test de restauration | 4 | -Restauration en tant que web-prod-01-restore (2 pts) -VM fonctionnelle après restauration (1 pt) -Documentation du temps de restauration (1 pt) |
Analyse compression ZFS | 2 | -Espace avant/après compression (1 pt) -Analyse de l'efficacité (1 pt) |
Partie 5 | Réplication et migration | |
Vérification du cluster | 1 | -Sortie de la commande pvecm status (1 pt) |
Migration Online | 2 | -Migration à chaud de web-prod-01 réussie (1 pt) -Documentation avec captures et différences (1 pt) |
Migration Offline | 2 | -Migration à froid de dev-test-01 réussie (1 pt) -Documentation avec captures et différences (1 pt) |
Réplication ZFS | 5 | -Configuration de réplication pour db-prod-01 (2 pts) -Test manuel réussi avec vérification snapshots (zfs list) (1 pt) -Explication différence entre réplication et sauvegarde (2 pts) |
Partie 6 | Haute-Disponibilité | |
Configuration HA | 6 | -Activation HA sur web-prod-01 et db-prod-01 (2 pts) -Priorités configurées correctement (100 et 200) (2 pts) -Politique redémarrage 3 tentatives (1 pt) -Vérification réplication ZFS active (1 pt) |
Test 1: Arrêt VM | 4 | -Test d'arrêt brutal effectué (2 pts) -Documentation comportement et redémarrage auto (2 pts) |
Test 2: Panne de noeud | 5 | -Test panne noeud effectué (2 pts) -Temps de détection documenté (1 pt) -Logs HA analysés (2 pts) |
Analyse HA | 5 | -Prérequis HA clairement expliqués (quorum, réplication) (2 pts) -Limitations observées identifiées (1 pt) -Scénario d'échec pertinent avec explication (2 pts) |
Partie 7 | Présentation du document | |
Structure et organisation | 3 | -Page de présentation (1 pt) -Table des matières détaillée et complète (1 pt) -Sections bien organisées et logiques (1 pt) |
Qualité des captures d'écran | 2 | -Captures pertinentes, lisibles et de bonne qualité (1 pt) -Annotations claires (1 pt) |
Clarté des explications | 2 | -Explications techniques compréhensibles et précises (2 pts) |
Professionnalisme général | 2 | -Mise en forme soignée et cohérente (1 pt) -Orthographe et grammaire correcte (1 pt) |
Conclusion personnelle | 1 | -Réflexion pertinente sur les apprentissages réalisés et les défis rencontrés (1 pt) |